AIC average by age group

Examine age-related change in parameter estimates from models
Run regressions between model parameters and age
##
## Call:
## lm(formula = LL ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -154.578 -58.515 9.859 54.104 200.722
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -215.354 19.598 -10.99 <2e-16 ***
## age 1.591 1.170 1.36 0.176
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 72.28 on 148 degrees of freedom
## Multiple R-squared: 0.01235, Adjusted R-squared: 0.005673
## F-statistic: 1.85 on 1 and 148 DF, p-value: 0.1758
##
## Call:
## lm(formula = alphaPosChoice ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.3090 -0.1999 -0.0917 0.1265 0.6863
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.320756 0.074344 4.314 2.91e-05 ***
## age -0.001369 0.004438 -0.308 0.758
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2742 on 148 degrees of freedom
## Multiple R-squared: 0.0006424, Adjusted R-squared: -0.00611
## F-statistic: 0.09514 on 1 and 148 DF, p-value: 0.7582
##
## Call:
## lm(formula = alphaNegChoice ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.20679 -0.12581 -0.06585 0.00345 0.81559
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.304868 0.061239 4.978 1.76e-06 ***
## age -0.011916 0.003656 -3.260 0.00138 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2259 on 148 degrees of freedom
## Multiple R-squared: 0.06698, Adjusted R-squared: 0.06068
## F-statistic: 10.62 on 1 and 148 DF, p-value: 0.001385
##
## Call:
## lm(formula = alphaPosComp ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.23170 -0.17898 -0.12042 0.05715 0.87437
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.300954 0.073408 4.100 6.8e-05 ***
## age -0.007638 0.004382 -1.743 0.0834 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2707 on 148 degrees of freedom
## Multiple R-squared: 0.02012, Adjusted R-squared: 0.01349
## F-statistic: 3.038 on 1 and 148 DF, p-value: 0.08341
##
## Call:
## lm(formula = alphaNegComp ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.2432 -0.2170 -0.1918 0.2049 0.7903
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.270545 0.088504 3.057 0.00265 **
## age -0.003096 0.005284 -0.586 0.55877
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3264 on 148 degrees of freedom
## Multiple R-squared: 0.002315, Adjusted R-squared: -0.004426
## F-statistic: 0.3434 on 1 and 148 DF, p-value: 0.5588
##
## Call:
## lm(formula = betaAgency ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.158 -4.012 -1.747 2.933 20.338
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.53843 1.51875 2.330 0.02117 *
## age 0.24547 0.09067 2.707 0.00758 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.601 on 148 degrees of freedom
## Multiple R-squared: 0.04719, Adjusted R-squared: 0.04075
## F-statistic: 7.33 on 1 and 148 DF, p-value: 0.007579
##
## Call:
## lm(formula = betaMachine ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.833 -3.151 -1.048 1.911 22.856
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.9326 1.3383 3.686 0.000319 ***
## age 0.1402 0.0799 1.755 0.081273 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.936 on 148 degrees of freedom
## Multiple R-squared: 0.02039, Adjusted R-squared: 0.01378
## F-statistic: 3.081 on 1 and 148 DF, p-value: 0.08127
##
## Call:
## lm(formula = agencyBonus ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.72271 -0.30021 -0.19730 0.08013 2.37437
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.72607 0.18718 3.879 0.000157 ***
## age -0.01312 0.01117 -1.174 0.242346
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6904 on 148 degrees of freedom
## Multiple R-squared: 0.009224, Adjusted R-squared: 0.00253
## F-statistic: 1.378 on 1 and 148 DF, p-value: 0.2423
Learning rate model
## Mixed Model Anova Table (Type 3 tests, S-method)
##
## Model: estimate ~ age_z * valence * agency + (1 | subject_id)
## Data: learning_rates
## Effect df F p.value
## 1 age_z 1, 148.00 5.38 * .022
## 2 valence 1, 444.00 11.17 *** <.001
## 3 agency 1, 444.00 0.10 .753
## 4 age_z:valence 1, 444.00 0.51 .477
## 5 age_z:agency 1, 444.00 0.09 .762
## 6 valence:agency 1, 444.00 28.34 *** <.001
## 7 age_z:valence:agency 1, 444.00 3.20 + .074
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: estimate ~ age_z * valence * agency + (1 | subject_id)
## Data: data
##
## REML criterion at convergence: 199.6
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -1.5327 -0.6127 -0.3271 0.2431 3.2261
##
## Random effects:
## Groups Name Variance Std.Dev.
## subject_id (Intercept) 0.008624 0.09287
## Residual 0.067885 0.26055
## Number of obs: 600, groups: subject_id, 150
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 0.203361 0.013063 148.000000 15.568 < 2e-16 ***
## age_z -0.030316 0.013074 148.000000 -2.319 0.0218 *
## valence1 -0.035555 0.010637 444.000000 -3.343 0.0009 ***
## agency1 0.003345 0.010637 444.000000 0.314 0.7533
## age_z:valence1 -0.007579 0.010646 444.000000 -0.712 0.4769
## age_z:agency1 -0.003219 0.010646 444.000000 -0.302 0.7625
## valence1:agency1 -0.056629 0.010637 444.000000 -5.324 1.62e-07 ***
## age_z:valence1:agency1 -0.019045 0.010646 444.000000 -1.789 0.0743 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) age_z valnc1 agncy1 ag_z:v1 ag_z:g1 vln1:1
## age_z 0.000
## valence1 0.000 0.000
## agency1 0.000 0.000 0.000
## age_z:vlnc1 0.000 0.000 0.000 0.000
## age_z:gncy1 0.000 0.000 0.000 0.000 0.000
## vlnc1:gncy1 0.000 0.000 0.000 0.000 0.000 0.000
## ag_z:vln1:1 0.000 0.000 0.000 0.000 0.000 0.000 0.000
##
## Paired t-test
##
## data: model_params$alphaPosChoice and model_params$alphaNegChoice
## t = 6.9666, df = 149, p-value = 9.73e-11
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## 0.1320728 0.2366607
## sample estimates:
## mean difference
## 0.1843667
##
## Paired t-test
##
## data: model_params$alphaPosComp and model_params$alphaNegComp
## t = -1.1108, df = 149, p-value = 0.2685
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## -0.11712714 0.03283236
## sample estimates:
## mean difference
## -0.04214739
Plot relations between model parameters and age

LS0tCnRpdGxlOiAiRTIgVm9DIEFuYWx5c2VzIFBhcnQgMzogUkwgQW5hbHlzZXMiCmRhdGU6IDEvOC8yNApvdXRwdXQ6CiAgICBodG1sX2RvY3VtZW50OgogICAgICAgIGRmX3ByaW50OiAncGFnZWQnCiAgICAgICAgdG9jOiB0cnVlCiAgICAgICAgdG9jX2Zsb2F0OgogICAgICAgICAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICAgICAgICAgIHNtb290aF9zY3JvbGw6IHRydWUKICAgICAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlCiAgICAgICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgICAgIHNlbGZfY29udGFpbmVkOiB0cnVlCi0tLQoKYGBge3IgY2h1bmsgc2V0dGluZ3MsIGluY2x1ZGUgPSBGQUxTRX0KIyBzZXQgY2h1bmsgc2V0dGluZ3MKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSwgCiAgICAgICAgICAgICAgICAgICAgICBjYWNoZSA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nID0gRkFMU0UpCmtuaXRyOjpvcHRzX2NodW5rJHNldChkcGk9NjAwKQprbml0cjo6b3B0c19rbml0JHNldChyb290LmRpciA9IHJwcm9qcm9vdDo6ZmluZF9yc3R1ZGlvX3Jvb3RfZmlsZSgpKQpgYGAKCmBgYHtyIGxvYWQgbGlicmFyaWVzLCBpbmNsdWRlID0gRn0KCiNsb2FkIGxpYnJhcmllcwpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShnbHVlKQpsaWJyYXJ5KGFmZXgpCmxpYnJhcnkobGF0ZXgyZXhwKQoKI2xvYWQgc2NyaXB0cwpzb3VyY2UoJ2FuYWx5c2lzX3NjcmlwdHMvdm9jX2Z1bmN0aW9ucy5SJykKYGBgCgpgYGB7ciBpbXBvcnQgZGF0YX0KIyByZWFkIGluIHBhcnRpY2lwYW50IGFnZXMKcGFydGljaXBhbnRfYWdlcyA8LSByZWFkX2NzdignZGF0YS92b2Nfc3ViX2luZm8uY3N2JykgCgojIyByZWFkIGluIGFpY3MKYWljcyA9IHJlYWRfY3N2KCJSTF9tb2RlbGluZy9vdXRwdXQvYWljc19hbGxfMTZfbW9kZWxzXzEwMGl0ZXIuY3N2IikgJT4lCiAgcmVuYW1lKHN1YmplY3RfaWQgPSBzdWJJRCkKCiMgY29tYmluZSB3aXRoIGFnZXMKYWljcyA8LSBpbm5lcl9qb2luKGFpY3MsIHBhcnRpY2lwYW50X2FnZXMsIGJ5ID0gJ3N1YmplY3RfaWQnKSAlPiUKICBtdXRhdGUoYWdlX2dyb3VwID0gY2FzZV93aGVuKGFnZSA8IDEzIH4gIkNoaWxkcmVuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZSA+IDEyLjk5ICYgYWdlIDwgMTggfiAiQWRvbGVzY2VudHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlID4gMTcuOTkgfiAiQWR1bHRzIikpCgphaWNzJGFnZV9ncm91cCA8LSBmYWN0b3IoYWljcyRhZ2VfZ3JvdXAsIGxldmVscyA9IGMoIkNoaWxkcmVuIiwgIkFkb2xlc2NlbnRzIiwgIkFkdWx0cyIpKQogICAgICAgICAKCiNwaXZvdCBsb25nZXIKbW9kZWxfcmVzdWx0cyA8LSBwaXZvdF9sb25nZXIoYWljcywgCiAgICAgICAgICAgICAgICAgICAgICBjb2xzID0gb25lQWxwaGFfb25lQmV0YTpmb3VyQWxwaGFfdHdvQmV0YV9hZ2VuY3lCb251cywKICAgICAgICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gIm1vZGVsIiwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJBSUMiKQoKCm1vZGVsX3Jlc3VsdHMkbW9kZWwgPC0gZmFjdG9yKG1vZGVsX3Jlc3VsdHMkbW9kZWwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJvbmVBbHBoYV9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25lQWxwaGFfdHdvQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ckFscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfdHdvQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uZUFscGhhX29uZUJldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbmVBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX3R3b0JldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX29uZUJldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX3R3b0JldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzIikpCm1vZGVsX3Jlc3VsdHMgPC0gbW9kZWxfcmVzdWx0cyAlPiUKICBtdXRhdGUoYWdlbmN5Qm9udXMgPSBjYXNlX3doZW4oc3RyX2RldGVjdChtb2RlbCwgImFnZW5jeSIpIH4gIldpdGggQWdlbmN5IEJvbnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0cl9kZXRlY3QobW9kZWwsICJhZ2VuY3kiKSB+ICJObyBBZ2VuY3kgQm9udXMiKSwKICAgICAgICAgc2hvcnROYW1lID0gc3RyX3JlbW92ZShtb2RlbCwgJ19hZ2VuY3lCb251cycpKQoKbW9kZWxfcmVzdWx0cyRzaG9ydE5hbWUgPC0gZmFjdG9yKG1vZGVsX3Jlc3VsdHMkc2hvcnROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygib25lQWxwaGFfb25lQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbmVBbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfdHdvQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV90d29CZXRhIikpCmBgYAoKIyAgQUlDIGF2ZXJhZ2UgYnkgYWdlIGdyb3VwIApgYGB7ciBwbG90IEFJQyBieSBhZ2UgZ3JvdXAsIGZpZy53aWR0aCA9IDgsIGZpZy5oZWlnaHQgPSA1LCB1bml0cyA9ICJpbiJ9CiNzdW1tYXJpemUKbW9kZWxfc3VtbWFyeSA8LSBtb2RlbF9yZXN1bHRzICU+JQogIGdyb3VwX2J5KGFnZV9ncm91cCwgc2hvcnROYW1lLCBhZ2VuY3lCb251cykgJT4lCiAgc3VtbWFyaXplKG1lYW5fYWljID0gbWVhbihBSUMpKQoKIyMgUGxvdCB0aGUgcmVzdWx0cyBieSBhZ2UgZ3JvdXAgCkFJQ19hZ2VfcGxvdCA8LSBnZ3Bsb3QobW9kZWxfc3VtbWFyeSwgYWVzKHggPSBhZ2VfZ3JvdXAsIHkgPSBtZWFuX2FpYywgZmlsbCA9IHNob3J0TmFtZSkpKwogIGZhY2V0X3dyYXAofmFnZW5jeUJvbnVzKSArCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIHBvc2l0aW9uID0gImRvZGdlIiwgY29sb3IgPSAiYmxhY2siKSArCiAgc2NhbGVfZmlsbF9tYW51YWwobmFtZSA9ICJNb2RlbCIsCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gYyhjb2xvcjgsIGNvbG9yMSwgY29sb3IyLCBjb2xvcjMsIGNvbG9yNCwgY29sb3I1LCBjb2xvcjYsIGNvbG9yNywgY29sb3IxKSwKICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSAgYyhUZVgoJyRvbmVcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckb25lXFxhbHBoYVxcX3R3b1xcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29DaG9pY2VcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckZm91clxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX3R3b1xcYmV0YScpKSkgKyAKICBjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9IGMoMzUwLCA2NTApKSArCiAgeWxhYigiTWVhbiBBSUMiKSArCiAgeGxhYigiIikgKwogIHZvY190aGVtZSgpICsKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDYwLCBoanVzdCA9IDEpKQpBSUNfYWdlX3Bsb3QKYGBgCgoKIyAgRXhhbWluZSBhZ2UtcmVsYXRlZCBjaGFuZ2UgaW4gcGFyYW1ldGVyIGVzdGltYXRlcyBmcm9tIG1vZGVscwpgYGB7ciBsb2FkIHBhcmFtZXRlcnMgZnJvbSB3aW5uaW5nIG1vZGVsfQptb2RlbF9wYXJhbXMgPC0gcmVhZF9jc3YoIlJMX21vZGVsaW5nL291dHB1dC9tb2RlbF9maXRzX3JlYWxfZGF0YS9mb3VyQWxwaGFfdHdvQmV0YV9hZ2VuY3lCb251cy5jc3YiLAogICAgICAgICAgICAgICAgICAgICAgICAgY29sX25hbWVzID0gYygibmVnTEwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9nUG9zdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBSUMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQklDIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhUG9zQ2hvaWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhTmVnQ2hvaWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhUG9zQ29tcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHBoYU5lZ0NvbXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmV0YUFnZW5jeSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZXRhTWFjaGluZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZ2VuY3lCb251cyIpKQoKI2FkZCBzdWIgSUQgYW5kIGluZm9ybWF0aW9uCnN1YmplY3RfaWQgPC0gbW9kZWxfcmVzdWx0cyAlPiUgc2VsZWN0KHN1YmplY3RfaWQpICU+JSB1bmlxdWUoKQptb2RlbF9wYXJhbXMgPC0gYmluZF9jb2xzKHN1YmplY3RfaWQsIG1vZGVsX3BhcmFtcykKbW9kZWxfcGFyYW1zIDwtIGlubmVyX2pvaW4ocGFydGljaXBhbnRfYWdlcywgbW9kZWxfcGFyYW1zLCBieSA9IGMoInN1YmplY3RfaWQiKSkKCmBgYAoKCiMgUnVuIHJlZ3Jlc3Npb25zIGJldHdlZW4gbW9kZWwgcGFyYW1ldGVycyBhbmQgYWdlCmBgYHtyIHBhcmFtZXRlciByZWdyZXNzaW9uc30KbW9kZWxfcGFyYW1zJExMIDwtIG1vZGVsX3BhcmFtcyRuZWdMTCAqIC0xCgojIExvZyBsaWtlbGlob29kCnN1bW1hcnkobG0oTEwgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojIG5vdCBzaWduaWZpY2FudAoKIyBBbHBoYSBQb3MgQ2hvaWNlCnN1bW1hcnkobG0oYWxwaGFQb3NDaG9pY2UgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojbm90IHNpZ25pZmljYW50CgojIEFscGhhIE5lZyBDaG9pY2UKc3VtbWFyeShsbShhbHBoYU5lZ0Nob2ljZSB+IGFnZSwgZGF0YSA9IG1vZGVsX3BhcmFtcykpCiMgc2lnbmlmaWNhbnQKCiMgQWxwaGEgUG9zIENvbXAKc3VtbWFyeShsbShhbHBoYVBvc0NvbXAgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojbm90IHNpZ25pZmljYW50CgojIEFscGhhIE5lZyBDb21wCnN1bW1hcnkobG0oYWxwaGFOZWdDb21wIH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKI25vdCBzaWduaWZpY2FudAoKIyBCZXRhIEFnZW5jeQpzdW1tYXJ5KGxtKGJldGFBZ2VuY3kgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojIHNpZ25pZmljYW50CgojIEJldGEgQmFuZGl0CnN1bW1hcnkobG0oYmV0YU1hY2hpbmUgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojIG5vdCBzaWduaWZpY2FudAoKIyBhZ2VuY3kgYm9udXMKc3VtbWFyeShsbShhZ2VuY3lCb251cyB+IGFnZSwgZGF0YSA9IG1vZGVsX3BhcmFtcykpCiMgbm90IHNpZ25pZmljYW50CgpgYGAKCiMgTGVhcm5pbmcgcmF0ZSBtb2RlbApgYGB7ciBsZWFybmluZyByYXRlIHJlZ3Jlc3Npb259CiMjIExlYXJuaW5nIHJhdGUgbW9kZWwKbGVhcm5pbmdfcmF0ZXMgPC0gbW9kZWxfcGFyYW1zICU+JQogIHBpdm90X2xvbmdlcihjb2xzID0gYyhhbHBoYVBvc0Nob2ljZTphbHBoYU5lZ0NvbXApLAogICAgICAgICAgICAgICBuYW1lc190byA9ICJsZWFybmluZ1JhdGUiLAogICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAiZXN0aW1hdGUiKSAlPiUKICBzZWxlY3Qoc3ViamVjdF9pZCwgYWdlLCBsZWFybmluZ1JhdGUsIGVzdGltYXRlKSAlPiUKICB1bmlxdWUoKSAlPiUKICBtdXRhdGUodmFsZW5jZSA9IGNhc2Vfd2hlbihzdHJfZGV0ZWN0KGxlYXJuaW5nUmF0ZSwgIlBvcyIpIH4gIlBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJfZGV0ZWN0KGxlYXJuaW5nUmF0ZSwgIk5lZyIpIH4gIk5lZ2F0aXZlIiksCiAgICAgICAgIGFnZW5jeSA9IGNhc2Vfd2hlbihzdHJfZGV0ZWN0KGxlYXJuaW5nUmF0ZSwgIkNob2ljZSIpIH4gIkNob2ljZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJfZGV0ZWN0KGxlYXJuaW5nUmF0ZSwgIkNvbXAiKSB+ICJDb21wIikpCgpsZWFybmluZ19yYXRlcyRhZ2VfeiA8LSBzY2FsZV90aGlzKGxlYXJuaW5nX3JhdGVzJGFnZSkKCmxlYXJuaW5nX3JhdGVfbW9kZWwgPC0gbWl4ZWQoZXN0aW1hdGUgfiBhZ2VfeiAqIHZhbGVuY2UgKiBhZ2VuY3kgKyAoMXxzdWJqZWN0X2lkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gbGVhcm5pbmdfcmF0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gIlMiKQpsZWFybmluZ19yYXRlX21vZGVsCnN1bW1hcnkobGVhcm5pbmdfcmF0ZV9tb2RlbCkKIyBtYWluIGVmZmVjdCBvZiBhZ2UKIyBtYWluIGVmZmVjdCBvZiB2YWxlbmNlCiMgdmFsZW5jZSB4IGFnZW5jeSBpbnRlcmFjdGlvbgoKCiN0IHRlc3QgYmV0d2VlbiBhbHBoYSBwb3MgY2hvaWNlIGFuZCBhbHBoYSBuZWcgY2hvaWNlCnQudGVzdChtb2RlbF9wYXJhbXMkYWxwaGFQb3NDaG9pY2UsIG1vZGVsX3BhcmFtcyRhbHBoYU5lZ0Nob2ljZSwgcGFpcmVkID0gVCkKI3NpZ25pZmljYW50CgojdCB0ZXN0IGJldHdlZW4gYWxwaGEgcG9zIGNvbXAgYW5kIGFscGhhIG5lZyBjb21wCnQudGVzdChtb2RlbF9wYXJhbXMkYWxwaGFQb3NDb21wLCBtb2RlbF9wYXJhbXMkYWxwaGFOZWdDb21wLCBwYWlyZWQgPSBUKQojbm90IHNpZ25pZmljYW50CgpgYGAKCgojIFBsb3QgcmVsYXRpb25zIGJldHdlZW4gbW9kZWwgcGFyYW1ldGVycyBhbmQgYWdlCmBgYHtyIGFnZSBwYXJhbWV0ZXIgcGxvdCwgZmlnLndpZHRoID0gNywgZmlnLmhlaWdodCA9IDQsIHVuaXRzID0gImluIn0KCnBhcmFtc19sb25nIDwtIG1vZGVsX3BhcmFtcyAlPiUKICBwaXZvdF9sb25nZXIobmFtZXNfdG8gPSAicGFyYW0iLAogICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAiZXN0aW1hdGUiLAogICAgICAgICAgICAgICBjb2xzID0gYyhhbHBoYVBvc0Nob2ljZTphZ2VuY3lCb251cykpIAoKcGFyYW1zX2xvbmckcGFyYW0gPC0gZmFjdG9yKHBhcmFtc19sb25nJHBhcmFtLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoImFscGhhUG9zQ2hvaWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhTmVnQ2hvaWNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhUG9zQ29tcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHBoYU5lZ0NvbXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmV0YUFnZW5jeSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZXRhTWFjaGluZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhZ2VuY3lCb251cyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYyhUZVgoIiRcXGFscGhhX3tjaG9pY2VfK30kIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoIiRcXGFscGhhX3tjaG9pY2VfLX0kIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoIiRcXGFscGhhX3tjb21wXyt9JCIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCIkXFxhbHBoYV97Y29tcF8tfSQiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgiJFxcYmV0YV97YWdlbmN5fSQiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgiJFxcYmV0YV97bWFjaGluZX0kIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBZ2VuY3l+Qm9udXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQoKcGFyYW1zX3Bsb3QgPC0gZ2dwbG90KHBhcmFtc19sb25nLCBhZXMoeCA9IGFnZSwgeSA9IGVzdGltYXRlLCBjb2xvciA9IHBhcmFtKSkgKwogIGZhY2V0X3dyYXAofnBhcmFtLCBzY2FsZSA9ICJmcmVlIiwgbGFiZWxsZXIgPSBsYWJlbF9wYXJzZWQsIG5yb3cgPSAyKSArCiAgZ2VvbV9wb2ludCgpICsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBhZXMoZmlsbCA9IHBhcmFtKSkgKwogIHlsYWIoIlBhcmFtZXRlciBFc3RpbWF0ZSIpICsKICB4bGFiKCJBZ2UiKSArCiAgdm9jX3RoZW1lKCkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKcGFyYW1zX3Bsb3QKYGBgCgoK